Associating metadata with media objects using time

ABSTRACT

In accordance with embodiments of the present invention, a method for associating metadata with a media object is provided. The method provides the ability to tag, or bookmark, a point in time for future use. The method includes receiving the metadata, an associated time condition, and an associated user identification. The method further includes storing at least the time condition. The at least stored time condition is used, at least in part, for associating the metadata with the media object. The media object is then provided to the user. In some embodiments the media object is not available for association with the metadata at the time the metadata is received. In other embodiments, the media object is provided by an external application.

BACKGROUND OF THE INVENTION

Adding metadata, such as tags, to digital media is an effectivemechanism for describing, searching, and sorting existing digital mediaobjects. Media may be images, audio, or video files, for example.Although adding metadata, such as tags, to a media objects is a usefulmethod for facilitating categorizing files, traditionally, the mediaobject must always be already available in order to associate a tag withit.

Because, generally, the media object would have to be available beforemetadata could be added, the user would have to spend time to access theappropriate media object, and then add a tag. In other words, a userneeds to encounter the media object before having the ability to add atag. However, there is no ability to tag media which will be availablein the future.

Therefore, a method and system for associating metadata, by indicating atime, with a media object that is not yet available, is desired.

BRIEF SUMMARY OF THE INVENTION

In accordance with embodiments of the present invention, a method forassociating metadata with a media object is provided. The methodprovides the ability to tag or bookmark a point in time for future use.The method includes receiving the metadata, an associated timecondition, and an associated user identification. The method furtherincludes storing at least the time condition. The at least stored timecondition is used, at least in part, for associating the metadata withthe media object. The media object is then provided to the user.

In accordance with some embodiments of the present invention, acomputer-readable medium comprising instructions for a processor, forassociating metadata with a media object, is provided. The instructionsinclude receiving the metadata, an associated time condition, and anassociated user identification. The instructions further include storingat least the time condition. The at least stored time condition is used,at least in part, for associating the metadata with the media object.The media object is then provided to the user.

Furthermore, in accordance with some embodiments of the presentinvention, a system for associating metadata with a media object isprovided. The system includes logic for receiving the metadata, anassociated time condition, and an associated user identification. Thesystem further includes a database for storing at least the timecondition. The system also includes logic for associating the metadatawith the media object based at least in part upon the time condition,and logic for providing to the user the media object.

Other features and aspects of the invention will become apparent fromthe following detailed description, taken in conjunction with theaccompanying drawings which illustrate, by way of example, the featuresin accordance with embodiments of the invention. The summary is notintended to limit the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a flowchart of a method for associating metadata witha media object according to embodiments of the invention;

FIG. 2 illustrates a method of a user adding metadata to a lectureaccording to embodiments of the invention;

FIG. 3 illustrates a method of a user creating metadata for an imagethat is not yet available according to embodiments of the invention;

FIG. 4 illustrates a block diagram of a client/server system accordingto embodiments of the invention; and

FIG. 5 illustrates a block diagram of a computing system according toembodiments of the invention.

In the following description, reference is made to the accompanyingdrawings which form a part thereof, and which illustrate severalembodiments of the present invention. It is understood that otherembodiments may be utilized and structural and operational changes maybe made without departing from the scope of the present invention. Theuse of the same reference symbols in different drawings indicatessimilar or identical items.

DETAILED DESCRIPTION OF THE INVENTION

The following description is presented to enable any person of ordinaryskill in the art to make and use the invention. Descriptions of specificmaterials, techniques, and applications are provided only as examples.Various modifications to the examples described herein will be readilyapparent to those of ordinary skill in the art, and the generalprinciples defined herein may be applied to other examples andapplications without departing from the spirit and scope of theinvention. Thus, the present invention is not intended to be limited tothe examples described and shown.

Embodiments of the invention enable users to associate metadata withmedia objects which the user is unaware of or does not have access to atthe time, in form of tags and annotations, for example. The metadata isassociated with the media object based in part on a time condition.

In some embodiments, a user may be able to determine activities andevents that may be of interest to the user in the future. For example,metadata may be associated to event data from an application thatprovides upcoming local events. An example of an application that may beused is upcoming.yahoo.com. The user's associated metadata may alsoindicate the user's level of interest or engagement in certain types ofactivities and events.

“Metadata” may refer to multiple metadata or just one metadatum, such asa tag or annotation. A tag is a keyword or term associated with a pieceof information, such as a media object. The metadata, or tag, isdescribing the item and enabling keyword-based classification and searchof information. Tags are usually chosen by an author or by a consumer,viewers, or a community. Media objects may be, but are not limited to, apicture, a geographic map, a blog entry, a video clip etc.

As illustrated in FIG. 1, embodiments of the invention provide forassociating metadata with a media object. After receiving the metadata,an associated time condition, and an associated user identification in102, at least the time condition and user ID is stored in a database104. In response to a request for the metadata, the metadata isassociated with the media object in 106 and provided to the user 108.More particularly, the media object may be uploaded to the client at theclient. The user may view a video file with the tags associated, forexample.

FIG. 2 illustrates an example of a method of adding metadata to a mediaobject according to embodiments of the invention. In 202, a student isattending a live lecture. The lecture is being recorded and it ispromised it will be available online in the near future. While thestudent is taking notes, the lecturer shows an interesting slide at 15minutes and 4 seconds into the lecture in 204. The student runs anapplication on his cell phone which stores a tag to a database at thattime instant in 206. Weeks later, the student gets the URL to the videoof the lecture posted online. When he accesses the webpage, a dynamicrequest checks the timestamp and duration on the video of the lectureand checks the database to see if the student left a tag during thistime 210. The user may also initiate the request to the database forstored tags that belong to them. The request matches a tag in thedatabase and displays a list of bookmarks, or other indicators, on thetimeline of the video, in 212, showing the student the point of interest(at 15 m 4 s).

The user may also be prompted to choose if they wish to import the taginto the current media object. If the user chooses to import the tag,the tag is added as metadata to the current media object, such as theonline lecture video, and are removed from the database.

However, the user may also choose to apply the tag. In this case, thetag is also added as metadata to the media object, but kept stored inthe database. The tag may be applied to other media objects in thefuture.

If the prompt is ignored, the tag may remain stored in the database.

FIG. 3 illustrates another example of a method of adding metadata to amedia object according to embodiments of the invention. As shown in 302,a user notices a celebrity while he is out, but is without his digitalcamera. Fortunately, the user notices several people around him takingpictures of this celebrity. He sends a request for adding metadata, or atag, for images at this instant in time via his cell phone 304. Therequest contains the user's ID and time information. At some point inthe future, the user wants to find the media associated with hismetadata by the time information. He accesses his metadata by his userID and a query is sent to an external media application to return imagesthat satisfy the time condition of his added tag 308. The query mayalternatively be dynamically generated. Dynamic generation of the queryfor associating a media object to metadata may be in response to a userlogging into their account, for example.

The query will search for images that were created at the time specifiedby the time condition and were uploaded to the external mediaapplication. The external media application may be photo sharing sites,such as Flickr, for example. The images that are found to satisfy thetime condition defined in the added metadata by the user are returned tothe user 310. The user hopes to find a digital image created at the sameinstant he made the request to a system for adding metadata to a mediaobject.

As described above, the user may be prompted with the options ofimporting or applying the tag.

FIG. 4 illustrates a block diagram of the system 400 according toembodiments of the invention. A user 402 makes a request to a server404. The request may be sent from the user 402 via a client applicationby making a user authenticated request to post and store the time dataof the current time in a database 406. The database 406 may store thetime condition and the user ID. The client application may be, forexample, a mobile or cell phone application. The client application maybe implemented on a personal computer system as well. The request mayalso include additional metadata for storing in the database that isassociated with the time data additional metadata. The additionalmetadata may include location, additional tags, comments, andannotations, for example.

The server 404 may request the metadata from the database 406. Thisrequest may be an API (Application Programming Interface). The APIrequest can return all the metadata, or tags, within a specified timerange.

The tags are associated to a media, which may be from an external mediaapplication 408. The external media application may be Flickr, YouTube,emails, calendar entries, etc, for example.

While aspects of the invention, including the above described systemsand methods, are described in terms of particular embodiments andillustrative figures, those of ordinary skill in the art will recognizethat the invention is not limited to the embodiments or figuresdescribed. Those skilled in the art will recognize that the operationsof the various embodiments may be implemented using hardware, software,firmware, or combinations thereof, as appropriate. For example, someprocesses can be carried out using processors or other digital circuitryunder the control of software, firmware, or hard-wired logic. (The term“logic” herein refers to fixed hardware, programmable logic, and/or anappropriate combination thereof, as would be recognized by one skilledin the art to carry out the recited functions.) Software and firmwarecan be stored on computer-readable media. Some other processes can beimplemented using analog circuitry, as is well known to one of ordinaryskill in the art. Additionally, memory or other storage, as well ascommunication components, may be employed in embodiments of theinvention.

FIG. 5 illustrates an exemplary computing system 500 that may beemployed to implement processing functionality for various aspects ofthe invention (e.g., as a server device, client device, database,presence platform, combinations thereof, and so on). Those skilled inthe relevant art will also recognize how to implement the inventionusing other computer systems or architectures. Computing system 500 mayrepresent, for example, a desktop, mainframe, server, client, or anyother type of special or general purpose computing device as may bedesirable or appropriate for a given application or environment.Computing system 500 can include one or more processors, such as aprocessor 504. Processor 504 can be implemented using a general orspecial purpose processing engine such as, for example, amicroprocessor, microcontroller or other control logic. In this example,processor 504 is connected to a bus 502 or other communication medium.

Computing system 500 can also include a main memory 608, for examplerandom access memory (RAM) or other dynamic memory, for storinginformation and instructions to be executed by processor 504. Mainmemory 508 also may be used for storing temporary variables or otherintermediate information during execution of instructions to be executedby processor 504. Computing system 500 may likewise include a read onlymemory (“ROM”) or other static storage device coupled to bus 502 forstoring static information and instructions for processor 504.

The computing system 500 may also include information storage mechanism510, which may include, for example, a media drive 512 and a removablestorage interface 520. The media drive 512 may include a drive or othermechanism to support fixed or removable storage media, such as a harddisk drive, a floppy disk drive, a magnetic tape drive, an optical diskdrive, a CD or DVD drive (R or RW), or other removable or fixed mediadrive. Storage media 518 may include, for example, a hard disk, floppydisk, magnetic tape, optical disk, CD or DVD, or other fixed orremovable medium that is read by and written to by media drive 514. Asthese examples illustrate, the storage media 518 may include acomputer-readable storage medium having stored therein particularcomputer software or data.

In alternative embodiments, information storage mechanism 510 mayinclude other similar instrumentalities for allowing computer programsor other instructions or data to be loaded into computing system 500.Such instrumentalities may include, for example, a removable storageunit 522 and an interface 520, such as a program cartridge and cartridgeinterface, a removable memory (for example, a flash memory or otherremovable memory module) and memory slot, and other removable storageunits 522 and interfaces 520 that allow software and data to betransferred from the removable storage unit 518 to computing system 500.

Computing system 500 can also include a communications interface 524.Communications interface 524 can be used to allow software and data tobe transferred between computing system 500 and external devices.Examples of communications interface 524 can include a modem, a networkinterface (such as an Ethernet or other NIC card), a communications port(such as for example, a USB port), a PCMCIA slot and card, etc. Softwareand data transferred via communications interface 524 are in the form ofsignals which can be electronic, electromagnetic, optical, or othersignals capable of being received by communications interface 524. Thesesignals are provided to communications interface 524 via a channel 528.This channel 528 may carry signals and may be implemented using awireless medium, wire or cable, fiber optics, or other communicationsmedium. Some examples of a channel include a phone line, a cellularphone link, an RF link, a network interface, a local or wide areanetwork, and other communications channels.

In this document, the terms “computer program product” and“computer-readable medium” may be used generally to refer to media suchas, for example, memory 508, storage device 518, storage unit 522, orsignal(s) on channel 528. These and other forms of computer-readablemedia may be involved in providing one or more sequences of one or moreinstructions to processor 504 for execution. Such instructions,generally referred to as “computer program code” (which may be groupedin the form of computer programs or other groupings), when executed,enable the computing system 500 to perform features or functions ofembodiments of the present invention.

In an embodiment where the elements are implemented using software, thesoftware may be stored in a computer-readable medium and loaded intocomputing system 500 using, for example, removable storage drive 514,drive 512 or communications interface 524. The control logic (in thisexample, software instructions or computer program code), when executedby the processor 504, causes the processor 504 to perform the functionsof the invention as described herein.

It will be appreciated that, for clarity purposes, the above descriptionhas described embodiments of the invention with reference to differentfunctional units and processors. However, it will be apparent that anysuitable distribution of functionality between different functionalunits, processors or domains may be used without detracting from theinvention. For example, functionality illustrated to be performed byseparate processors or controllers may be performed by the sameprocessor or controller. Hence, references to specific functional unitsare only to be seen as references to suitable means for providing thedescribed functionality, rather than indicative of a strict logical orphysical structure or organization.

Although the present invention has been described in connection withsome embodiments, it is not intended to be limited to the specific formset forth herein. Rather, the scope of the present invention is limitedonly by the claims. Additionally, although a feature may appear to bedescribed in connection with particular embodiments, one skilled in theart would recognize that various features of the described embodimentsmay be combined in accordance with the invention. Moreover, aspects ofthe invention describe in connection with an embodiment may stand aloneas an invention.

Furthermore, although individually listed, a plurality of means,elements or method steps may be implemented by, for example, a singleunit or processor. Additionally, although individual features may beincluded in different claims, these may possibly be advantageouslycombined, and the inclusion in different claims does not imply that acombination of features is not feasible and/or advantageous. Also, theinclusion of a feature in one category of claims does not imply alimitation to this category, but rather the feature may be equallyapplicable to other claim categories, as appropriate.

Moreover, it will be appreciated that various modifications andalterations may be made by those skilled in the art without departingfrom the spirit and scope of the invention. The invention is not to belimited by the foregoing illustrative details, but is to be definedaccording to the claims.

What is claimed is:
 1. A method comprising: receiving, at a computingdevice, a request from a user for a media object, said requestcomprising user generated metadata corresponding to the media object, atime condition associated with the media object and a user identifier,said user generated metadata comprising annotations of the media objectat said time condition; storing at least the time condition inassociation with the media object in a computer-readable storage mediumassociated with the computing device; associating, via the computingdevice, the user generated metadata with the media object based at leastin part upon the time condition and the user identifier, saidassociation comprising determining that said user generated metadata isin accordance with said time condition and adding the user generatedmetadata to the media object as a media tag; and communicating, via thecomputing device, in response to a subsequent user request for the mediaobject, the media object to the user over a network along with the usergenerated metadata.
 2. The method of claim 1, wherein the media objectis not available for association with the metadata at the time themetadata is received.
 3. The method of claim 1, wherein the media objectis provided by an external application.
 4. The method of claim 1,further comprising receiving an indication of the media object alongwith the metadata.
 5. The method of claim 1, further comprisingproviding the media tag along with the media to the user in accordancewith the time condition.
 6. The method of claim 1, further comprisingreceiving associated annotation information along with the metadata. 7.The method of claim 1, wherein the time condition is a time range. 8.The method of claim 1, wherein associating the metadata with the mediaobject based at least in part upon the time condition is in response todynamically generating a query, wherein the query returns media objectsfor satisfying the time condition.
 9. The method of claim 8, wherein thequery generates a search for media objects that satisfy the timecondition.
 10. The method of claim 8, wherein the query is not directlyinitiated by the user.
 11. The method of claim 1, wherein associatingthe metadata with the media object based at least in part upon the timecondition is in response to a user request for a query, wherein thequery returns media objects for satisfying the time condition.
 12. Anon-transitory computer-readable storage medium tangibly encoded withinstructions, that when executed by at least one processor, perform amethod comprising: receiving, over a network, a request from a user fora media object, said request comprising user generated metadatacorresponding to the media object, a time condition associated with themedia object and a user identifier, said user generated metadatacomprising annotations of the media object at said time condition;storing at least the time condition in association with the mediaobject; associating the user generated metadata with the media objectbased at least in part upon the time condition and the user identifier,said association comprising determining that said user generatedmetadata is in accordance with said time condition and adding the usergenerated metadata to the media object as a media tag; andcommunicating, over the network in response to a subsequent user requestfor the media object, the media object to the user along with the usergenerated metadata.
 13. The non-transitory computer-readable storagemedium of claim 12, wherein the media object is not available forassociation with the metadata at the time the metadata is received. 14.The non-transitory computer-readable storage medium of claim 12, theinstructions further for receiving an indication of the media objectalong with the metadata.
 15. The non-transitory computer-readablestorage medium of claim 12, the instructions further for providing themedia tag along with the media to the user in accordance with the timecondition.
 16. The non-transitory computer-readable storage medium ofclaim 12, the instructions further for receiving associated annotationinformation along with the metadata.
 17. A system comprising: aprocessor; and a non-transitory computer-readable storage medium fortangibly storing thereon program logic for execution by the processor,the program logic comprising: logic executed by the processor forreceiving a request from a user for a media object, said requestcomprising user generated metadata corresponding to the media object, atime condition associated with the media object and a user identifier,said user generated metadata comprising annotations of the media objectat said time condition; a database for storing the time condition inassociation with the media object; logic executed by the processor forassociating the user generated metadata with the media object based atleast in part upon the time condition and the user identifier, saidassociation comprising determining that said user generated metadata isin accordance with said time condition and adding the user generatedmetadata to the media object as a media tag; and logic executed by theprocessor for communicating, in response to a subsequent user requestfor the media object, the media object to the user along with the usergenerated metadata.
 18. The system of claim 17, wherein the media objectis not available for association with the metadata at the time themetadata is received.
 19. The system of claim 17, further comprisinglogic executed by the processor for receiving an indication of the mediaobject along with the metadata.
 20. The system of claim 17, furthercomprising logic executed by the processor for providing the media tagalong with the media to the user in accordance with the time condition.21. The system of claim 17, further comprising logic executed by theprocessor for receiving associated annotation information along with themetadata.